package com.sky.properties;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

@Component
/*
该注解的作用：
将JwtProperties中的属性和application.yml中的配置项对应起来；
spring项目启动时，会自动将application.yml中对应的配置项注入进来

优点：
类型安全：spring自动进行类型转换，例如：spring会自动将“true"转换成boolean类型，将”3600“转换成int类型
灵活性：您可以将 @ConfigurationProperties 注解的类用于不同的配置文件不同的配置源，并且可以轻松地进行修改和扩展。
例如：通过配置 Spring Boot 的 spring.profiles.active，可以选择使用不同的配置文件。
例如，在开发环境中启动应用时指定 -Dspring.profiles.active=dev，在生产环境中指定 -Dspring.profiles.active=prod，这样 JwtProperties 会自动加载相应的配置文件内容。
*/
@ConfigurationProperties(prefix = "sky.jwt")
@Data
public class JwtProperties {

    /**
     * 管理端员工生成jwt令牌相关配置
     */
    private String adminSecretKey;
    private long adminTtl;
    private String adminTokenName;

    /**
     * 用户端微信用户生成jwt令牌相关配置
     */
    private String userSecretKey;
    private long userTtl;
    private String userTokenName;

}
